package com.cityfood.service;

import com.cityfood.pojo.CfOrder;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface OrderService {
	/**
	 *  订单确认，生成订单
	 */
	public int createOrder(CfOrder order);
	
	/**
	 *  订单详情
	 */
	public CfOrder getOrder(int orderId);
	
	/**
	 * 我的订单
	 */
	public List<CfOrder> getMyOrders(int userId);
	
	
	/**
	 * 我的订单
	 */
	public List<CfOrder> getMyOrdersByStatus(Integer userId,Integer status);
	
	/**
	 * 我的订单
	 */
	public PageInfo<CfOrder> getMyOrdersAndPage(Integer userId,Integer currentPage);
	
	/**
	 * 根据订单状态查询我的订单
	 */
	public PageInfo<CfOrder> getMyOrdersByStatusAndPage(Integer userId,Integer status,Integer currentPage);
	/**
	 * 支付订单 :订单从待支付状态改成已支付
	 */
	public int orderPay(int orderId);
	
	/**
	 * 礼品支付：订单从待支付改为待赠送
	 */
	public int orderPersentPay(int orderId);
	
	/**
	 * 用户收货：订单从已支付状态改为已收货
	 */
	public int orderDelivery(int orderId);
	
	/**
	 * 订单取消： 订单支付之前从进行中变成已取消
	 */
	public int orderCancel(int orderId);
	
	/**
	 * 订单评价： 订单从已收货变成已完成
	 */
	public int orderComment(int orderId);
	
	/**
	 * 订单处理 ： 4取消订单    2收货确认     3 评价订单    6送礼
	 */
	public int updateOrderStatus(CfOrder order);
	
	/**
	 * 按交易状态查询个人订单
	 */
	public List<CfOrder> getOrdersByStatus(int userId,int tradeStatus);

	/**
	 * 后台-订单管理-订单列表查询
	 */
	public PageInfo<CfOrder> getOrderList(String conditions, int crruentPage) throws Exception;

    /**
     * 根据订单号获取订单
     * @param orderNo
     * @return
     */
    public CfOrder getOrder(String orderNo);


		
}
